/** Ecouteur du bouton Valider de la fenetre d'acquisition Plan */

import java.awt.event.*;
import javax.swing.*;

public class EcouteurValiderPlan implements ActionListener{
	private PagePrincipale pageP;
	private FenetreAcquisition fenetreA;
	
	/** creation de l'ecouteur sur les TextField
	 * 
	 * @param pageP page d'accueil
	 */
	public EcouteurValiderPlan(PagePrincipale pageP, FenetreAcquisition fenetreA){
		this.pageP = pageP;
		this.fenetreA = fenetreA;
	}

	/** actions a realiser à chaque clic sur Valider de la fenetre CreationPlan */
	public void actionPerformed(ActionEvent e){
		JTextField tf;
		double valeur;
		JLabel lab;
		
		try{
			// recuperer la valeur de latitude
			tf = fenetreA.getLat();
			valeur = Double.parseDouble(tf.getText());
			pageP.setLatitude(valeur);
			lab = pageP.getLat();
			lab.setText(tf.getText());
			
			// si besoin, recuperer le fuseau
			if ( !pageP.isHeureSolaire() ) {
				tf = fenetreA.getF();
				valeur = Double.parseDouble(tf.getText());
				pageP.setFuseau(valeur);
				lab = pageP.getFus();
				lab.setText(tf.getText());
			}
			
			// recuperer la longueur du plan
			tf = fenetreA.getLongu();
			valeur = Double.parseDouble(tf.getText());
			pageP.setLongueur(valeur);
			
			// recuperer la largeur du plan
			tf = fenetreA.getLarg();
			valeur = Double.parseDouble(tf.getText());
			pageP.setLargeur(valeur);
			
			// recuperer la coordonnee Ouest
			tf = fenetreA.getxVal();
			valeur = Double.parseDouble(tf.getText());
			pageP.setX(valeur);
			lab = pageP.getxVal();
			lab.setText(tf.getText());
			
			// recuperer la coordonnee Sud
			tf = fenetreA.getyVal();
			valeur = Double.parseDouble(tf.getText());
			pageP.setY(valeur);
			lab = pageP.getyVal();
			lab.setText(tf.getText());
			
			// recuperer la coordonnee Normale
			tf = fenetreA.getzVal();
			valeur = Double.parseDouble(tf.getText());
			pageP.setZ(valeur);
			lab = pageP.getzVal();
			lab.setText(tf.getText());
			
			// fermer la fenetre
			fenetreA.getFenetreAcquisition().dispose();
		}
		// afficher message d'erreur si toutes les entrees n'ont pas ete mentionnees ou si elles ne sont pas toutes des nombres.
		catch(NumberFormatException err){
			System.out.println("Entrees invalides ou incompletes");
			JDialog erreur = new JDialog(fenetreA.getFenetreAcquisition(),"Erreur");
			erreur.setVisible(true);
			erreur.setBounds(500, 400, 300, 80);
			JLabel message = new JLabel("Entrees invalides ou incompletes",JLabel.CENTER);
			erreur.add(message);
		}
	}
}
